package com.example;

import org.junit.Test;

/**
 * bit(位),byte(字节=8位),KB(1024字节),MB,GB,TB
 */
public class Demo01 {

    /**
     * 整数类型：
     * 1.字节型：byte,占1个字节，范围：-128~127,-2^7 ~ 2^7-1
     * 2.短整型：short,占2个字节，范围：-2^15 ~ 2^15-1
     * 3.整型：int(整数的默认类型),占4个字节
     * 4.长整型：long,占8个字节
     */
    @Test
    public void test01() {
        byte a = 100;
        short b = 30000;
        int c = 5;
        long d = 300;
        // 一旦数值超过了int的范围，必须以L/l结尾
        d = 3000000000L;
    }

    /**
     * 浮点数：
     * 1.单精度：float,占4个字节
     * 2.双精度：double(小数的默认类型),占8个字节
     */
    @Test
    public void test02() {
        // float变量的值必须以F/f结尾
        float e = 5.2f;
        // double变量的值可以以D/d结尾
        double f = 3.8;
    }

    /**
     * 字符型：char,占2个字节
     */
    @Test
    public void test03() {
        char g = 'a';
        g = '一';
        g = '2';
        char h = 97; // 字符a
        System.out.println(h);
    }

    /**
     * 布尔类型：boolean,值只有2个(true/false),使用了1位，但实际占用1字节
     */
    @Test
    public void test04() {
        boolean i = true;
        i = false;
        System.out.println("true"); // 不是布尔值
    }
}
